var express = require('express');
var router = express.Router();

//腾讯人脸识别包
const tencentcloud = require("tencentcloud-sdk-nodejs-iai");
const {secretId,secretKey} = require('../config/index')

//人脸识别登录
router.post('/faceLogin',async (req,res)=>{
    
    //获取前端传来的base64
    const base64 = req.body.base64;

    const IaiClient = tencentcloud.iai.v20200303.Client;

    //配置项
    const clientConfig = {
        credential: {
            secretId: secretId,
            secretKey: secretKey,
        },
        region: "ap-beijing", //地域参数（华北地区北京）
        //固定写法
        profile: {
            httpProfile: {
                endpoint: "iai.tencentcloudapi.com",
            },
        },
    };

    //创建实例
    const client = new IaiClient(clientConfig);

    //请求参数
    const params = {
        "GroupIds": [  //人员库ID
            "2023_face_dept"
        ],
        "Image": base64,  //前端传来的图片base64编码
        "NeedPersonInfo": 1,  //是否返回人员具体信息。0 为关闭，1 为开启。默认为 0。
        "QualityControl": 0,  //图片质量控制。 0: 不进行控制； 1:较低的质量要求
        "FaceMatchThreshold": 85,  //人脸对比度大于85才匹配通过
    };

    //发送请求
    const {Results} = await client.SearchFaces(params);
    
    //判断如果没有匹配到
    if(Results[0].Candidates.length === 0){
        res.json({
            code:-1,
            msg:'该人员没有注册'
        })
        return;
    }
    //匹配到则返回用户信息
    const {FaceId,Gender,PersonId,PersonName} = Results[0].Candidates[0];
    res.json({
        code:0,
        data:{
            FaceId,
            Gender,
            PersonId,
            PersonName
        },
        msg:'识别成功'
    })
})

module.exports = router;
